package com.waitingresult.zuo.sort;

import java.util.Arrays;

/**
 * @Author: WangShuai
 * @CreateTime: 2022-10-24  13:14
 * @Description: 选择排序
 * @Version: 1.0
 */
public class SelectionSort {
    /**
     * 0- n-1  找最小的位置 放到0位置
     *
     * @param args
     */
    public static void main(String[] args) {
        int[] arr = {9, 4, 1, 6, 3, 2, 5, 7, 8};

        for (int j = 0; j < arr.length; j++) {
            int minIndex = j;
            for (int i = j + 1; i < arr.length; i++) {
                if (arr[minIndex] > arr[i]) {
                    minIndex = i;
                }
            }
            SortUtils.swap(arr, minIndex, j);
            SortUtils.print(arr);
        }
    }


    public static void sort(int[] arr) {
        // 循环数组
        for (int i = 0; i < arr.length; i++) {
            // i 位置 默认为最小值
            int maxValueIndex = i;
            // 从i+1 开始循环
            for (int i1 = i + 1; i1 < arr.length; i1++) {
                // 取最小的index
                maxValueIndex = arr[i1] < arr[maxValueIndex] ? i1 : maxValueIndex;
            }
            // 交换
            int num = arr[maxValueIndex];
            arr[maxValueIndex] = arr[i];
            arr[i] = num;
        }
        System.err.println(Arrays.toString(arr));
    }
}
